#include<iostream>
#include<vector>
#include<list>
#include<deque>
using namespace std;

#include "stack.h"
#include "queue.h"

void test_stack()
{
	//cyq::stack<int,list<int>> st;
	cyq::stack<int> st;
	st.push(1);
	st.push(2);
	st.push(3);
	st.push(4);
	st.push(5);
	st.push(6);

	while (!st.empty())
	{
		cout << st.top() << " ";
		st.pop();
	}
	cout << endl;

}

void test_queue()
{
	//cyq::stack<int,list<int>> st;
	cyq::queue<int> q;
	q.push(1);
	q.push(2);
	q.push(3);
	q.push(4);
	q.push(5);
	q.push(6);

	while (!q.empty())
	{
		cout << q.front() << " ";
		q.pop();
	}
	cout << endl;

	cyq::queue<int,list<int>> qq;
	qq.push(1);
	qq.push(2);
	qq.push(3);
	qq.push(4);
	qq.push(5);
	qq.push(6);

	while (!qq.empty())
	{
		cout << qq.back() << " ";
		qq.pop();
	}
	cout << endl;
}

int main()
{
	test_stack();

	test_queue();

	return 0;
}